#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QLabel>
#include <QAction>
#include <QThread>  //线程类
#include "data.h"

namespace Ui {
class MainWindow;
}
class QAction;
class MainWindow : public QMainWindow   //游戏界面类
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void showMenuBar(void);     //设置菜单栏



private:
    Ui::MainWindow *ui;
    QList <QLabel *> nextBlockList; //下一块
    QList <QLabel *> gameLableList; //游戏

    QThread *myThread;  //将游戏数据类 运行于该线程
    Data *data;  //游戏数据

    QAction *action_newGame;
    QAction *action_help;
    QAction *action_about;

    QMenu *mainMenu;
    QMenu *aboutMenu;
private slots:
    void slot_updateUi(void);   //更新UI
    void slot_gameOver(void);   //结束游戏

    void slot_showHelp(void);   //显示帮助页面
    void slot_newGame(void);    //新游戏
    void slot_showAbout(void);  //显示关于

    void on_iBtn_beginAndEnd_clicked();

    void on_iBtn_pause_clicked();

signals:
    void processKeyEvent(dir_t dir);
    void gameBegin(void);
    void dataStart(void);
protected:
    void keyPressEvent(QKeyEvent *);   //重写 按键按下事件 虚函数
    void keyReleaseEvent(QKeyEvent *);
};

#endif // MAINWINDOW_H
